/*
 * ========================================================
 * Copyright(c) 2014 杭州偶尔科技-版权所有
 * ========================================================
 * 本软件由杭州偶尔科技所有, 未经书面许可, 任何单位和个人不得以
 * 任何形式复制代码的部分或全部, 并以任何形式传播。
 * 公司网址
 * 
 * 			http://www.kkkd.com/
 * 
 * ========================================================
 */
package com.simon.mengkou.data.db;

import android.content.Context;

import com.j256.ormlite.android.apptools.OpenHelperManager;
import com.j256.ormlite.support.ConnectionSource;
import com.j256.ormlite.table.TableUtils;
import com.ouertech.android.agm.lib.base.utils.UtilLog;
import com.simon.mengkou.data.bean.base.User;
import com.simon.mengkou.data.db.dao.UserDao;

import java.sql.SQLException;


/**
 * @author : Zhenshui.Xia
 * @date : 2014年8月10日
 * @desc : Dao工厂
 */
public class DaoFactory {
	private static DaoFactory mInstance;
	private ConnectionSource mSource;
    
	//用户dao
	private UserDao mUserDao;
    

    private DaoFactory(Context ctx) {
        this.mSource = OpenHelperManager.getHelper(ctx, DataHelper.class)
        		.getConnectionSource();
    }
    
    /**
     * 清除表中的所有数据
     */
    public void clear() {
    	try {
			UtilLog.e("drop user table");
			TableUtils.dropTable(mSource, User.class, true);
            UtilLog.e("create user table");
			TableUtils.createTable(mSource, User.class);
		} catch (SQLException e) {
			
		}
    }

    /**
     * 单例模式
     * 
     * @param ctx 上下文
     * @return
     */
    public synchronized static DaoFactory getInstance(Context ctx) {
        if (null == mInstance) {
        	mInstance = new DaoFactory(ctx);
        }
        
        return mInstance;
    }
    
    /**
     * 获取用户dao
     * @return
     */
    public UserDao getUserDao() {
        if (null == mUserDao) {
            try {
            	mUserDao = new UserDao(mSource, User.class);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        return mUserDao;
    }
    


}
